1. Technical Field
The present invention relates generally to an improved data processing system and in particular, to a method and apparatus for processing graphics data. Still more particularly, the present invention provides a method and apparatus for full scene anti-aliasing of 3D graphics data.
2. Description of Related Art
Data processing systems, such as personal computers and workstations, are commonly utilized to run a variety of 3D graphics applications including CAD/CAM, CAE, and Digital Content Creation (DCC). Engineers, scientists, technicians, and others employ these applications daily. These applications involve complex calculations, such as finite element analysis, to model stress in structures. Other applications include chemical or molecular modeling applications. CAD/CAM/CASE applications are normally graphics intensive in terms of the number of small primitivesxe2x80x94points, lines, trianglesxe2x80x94processed by the graphics adapter or subsystem. DCC applications are used to create a variety of 3D graphics images some requiring a high degree of photorealism. Generally, users of these applications require and demand that the data processing systems be able to provide extremely fast graphics information and extremely good image quality.
The processing of a graphics data stream to provide a graphical display on a video display terminal requires an extremely fast graphics system to provide a display with a rapid response and a very high resolution graphics frame buffer. This insures that there are enough pixels samples to display lines/edges in a smooth fashion rather than a stairstepped jagged look. In these types of graphics systems, primitives are received for processing and display. A primitive is a graphics element that is used as a building block for creating images, such as, for example, a point, a line, or a triangle. A primitive is defined by a group of one or more vertices. An attribute is used to define how a primitive will be displayed. Attributes include, for example, line style, color, and surface texture. A vertex defines a point, an end point of an edge, or a corner of a polygon where two edges meet. Data also is associated with a vertex in which the data includes information, such as positional coordinates, colors, normals, and texture coordinates. Commands are sent to the graphics system to define how the primitives and other data should be processed for display.
When displaying primitives, one common problem is that jagged edges may be present. This effect is also referred to as xe2x80x9cjaggiesxe2x80x9d or xe2x80x9cstaircasingxe2x80x9d and results from an all or nothing approach to scan conversion in which each pixel is either replaced with the primitive""s color or left unchanged. This staircasing is an instance of a phenomenon known as aliasing. The application of techniques to reduce or eliminate aliasing as referred to as anti-aliasing. Such functions for anti-aliasing may be provided on a graphics adapter. Currently, however, this type of support requires specific hardware for functions, such as super sampling, multisampling, and accumulating data. Providing anti-aliasing functions, such as full scene anti-aliasing (FSAA), increases the complexity and cost of graphics adapters.
Therefore, it would be advantageous to have an improved method and apparatus for providing FSAA without increasing the complexity or cost of a graphics adapter via the addition of redundant logic units in the graphics chip(s).
The present invention provides a method and apparatus in a data processing system for anti-aliasing an image. The image is rendered to an off screen memory using a size that is larger than a desired size for the image. In the depicted examples, the size is at least two times the desired size. The image is resized within a hardware graphics engine in the data processing system, to the desired size. The image is displayed in the desired size.